package com.pt25.base.model.security;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Set;

/**
 * 用户会话信息
 *
 * @param <T>
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class UserSession<T> {
    /**
     * 用户唯一标识：一般是用户的的ID
     */
    private String uid;
    /**
     * 租户id
     */
    @Builder.Default
    private String tenantId = "0";
    /**
     * 用户类型，要和配置中的用户类型相对应
     */
    private String userType;
    /**
     * session过期时间(单位:分钟)
     */
    @Builder.Default
    private Integer expiredMinutes = 30;
    /**
     * 用户权限列表
     */
    private Set<String> permissionList;
    /**
     * 用户角色列表
     */
    private Set<String> roleList;
    /***
     * 扩展数据（用户可以根据需求自定义）
     */
    private T t;
}
